package com.yehongyu.mytools.database;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class TransferTwoDataBase {
	public static void main(String args[]) {
		try {
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			Connection conAccess = DriverManager.getConnection(
					"jdbc:odbc:dbname", "user", "password");// dbname为你的access中的数据库
			Statement stmt = conAccess.createStatement();
			ResultSet rs = stmt.executeQuery("select * from tablename");
			// tablename 为你的access中的数据库中需要转换数据的表
			Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")
					.newInstance();
			String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
			// pubs为你的sqlserver2000中的数据库
			Connection conSql = DriverManager.getConnection(url, "sa", "sa");
			PreparedStatement pstmt = conSql
					.prepareStatement("insert into table values(?,?,?,?.....)");// 表table
																				// 与access中的表的结构,字段应该相同,有多少字段就有
			// 多少问号
			while (rs.next()) {
				// pstmt.setXXXXX(1,rs.getXXXXX("字段1"));
				// pstmt.setXXXXX(2,rs.getXXXXX("字段2"));
				// 同上面结构的语句,其中'XXXXX'为你的字段的数据类型,自行替换
				// 有多少个字段（问号）就写多少条这样的语句，即把表中数据全部传输

				pstmt.executeUpdate();
			}
			rs.close();
			stmt.close();
			pstmt.close();
			conAccess.close();
			conSql.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
